Concurrent IPDS and non-IPDS print processing

ABSTRACT

Concurrent IPDS and non-IPDS print processing is provided. Because an IPDS print session may not usually be interrupted, non-IPDS print data is received through a separate, non-IPDS channel in the printer control unit. The non-IPDS data is rasterized (“ripped”) using spare processing cycles and stored in a rip spool. At an appropriate time, such as when fully rasterized, an interrupt request may be submitted to the IPDS host then controlling the printer. When the IPDS host relinquishes control of the printer, such as when the IPDS print job has been completed, the rasterized non-IPDS print data may be de-spooled to the print engine and printed.

TECHNICAL FIELD

The present invention relates generally to high end, work-group andmainframe attached printers and, in particular, to more efficientlyusing printer resources during IPDS™ (Intelligent Printer Data Stream™)processing.

BACKGROUND ART

Business and comparable communications have become extremely complex.Variables on a page include color, text, image and graphics. Productionchoices include traditional offset, digital high-speed print,continuous-forms print and cut-sheet print. Delivery options includeHTML, e-mail, fax and screen. Further complicating the productionprocess is the variety of industry formats, including EPS, PDF, TIFF,JPEG, XML PostScript® and PCL.

IPDS™ (Intelligent Printer Data Stream™) was developed by IBM® as ahost-to-printer data stream or language for controlling and managingall-points-addressable printers to allow-the presentation of pagescontaining a wide range of different data types. Without providingdetails, IPDS contains the information necessary to identify, monitorand control the functions of certain printers which are used in high endwork-group and mainframe environments (as well as other environments).The information includes the characteristics of the printer, itsresolution, its available resources and its memory, among others. AnIPDS compatible printer may be driven at the highest possible speed andwith the greatest use of its functions by allowing the output ofdifferent, independent source data to be merged at print time, resultingin an integrated, mixed-data printed page.

However, once an IPDS job has been submitted by a host to a printer andthe IPDS session has been opened, the IPDS session “owns” the printerand expects that there are no other jobs printing. Consequently, when anon-IPDS print job is sent to the printer, it must wait until the IPDShost relinquishes the printer before rasterizing (or ripping) of thenon-IPDS data can even begin. If printing begins after some of the datahas been ripped (“concurrent rip and print”) but the printer printsfaster than ripped data is available, the printer must pause. However,pausing may damage certain printers, such as continuous forms printers.Therefore, it is preferable to fully rip the data before beginning toprint. However, because ripping a large print job may take a long time,the printer may remain idle for that period until ripping is completewhich is expensive in both time and resources.

Consequently, a more efficient use of printer resources remainsdesirable.

SUMMARY OF THE INVENTION

The present invention provides concurrent IPDS and non-IPDS printprocessing. Because an IPDS print session may not usually beinterrupted, non-IPDS print data is received through a separate,non-IPDS channel in the printer control unit. The non-IPDS data israsterized (“ripped”) using spare processing cycles and stored in a ripspool. At an appropriate time, such as when the data is fullyrasterized, an interrupt request may be submitted to the IPDS host thencontrolling the printer. When the IPDS host relinquishes control of theprinter, such as when the IPDS print job has been completed, therasterized non-IPDS print data may be de-spooled to the print engine andprinted. Thus, a more efficient use of printing resources is provided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a printer control unit in which the presentinvention may be implemented; and

FIG. 2 is a flowchart of a method of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 is a block diagram of a printer control unit 100 in which thepresent invention may be implemented. The control unit 100 is attachedto one or more host devices, such as an IPDS host 10 and a non-IPDS host20, through IPDS and non-IPDS host interfaces 12 and 22, respectively.The non-IPDS 20 host may employ such non-IPDS print formats as EPS, PDF,TIFF, JPEG, XML PostScript® PCL and/or others. Functionally coupled tothe IPDS interface 12 in the control unit 100 is an IPDS rasterizer 110for rasterizing or “ripping” incoming IPDS print data into bits whichindicate where dots are to be printed on a page. Similarly, functionallycoupled to the non-IPDS interface 22 in the control unit 100 is anon-IPDS rasterizer 120 for rasterizing or ripping incoming non-IPDSprint data. Rasterized IPDS data may be sent from the IPDS rasterizer110 to a rip spool 130 for temporary storage and through an interface 32to a print engine 30 where a print job is completed. Alternatively, theIPDS rasterizer 110 may send rasterized data directly through theinterface 32 to the print engine 30. Rasterized non-IPDS data may besent from the non-IPDS rasterizer 120 to the rip spool 130 for temporarystorage and through the interface 32 to the print engine 30. The presentinvention makes use of both data paths, one for IPDS print jobs and theother for non-IPDS print jobs. Firmware 140 provides control for thecomponents. The control unit 100 may be integrated into the print engine30 or may be external to the print engine 30.

Referring to the flowchart of FIG. 2, in operation, a “listener” willdetect a request from the non-IPDS host 20 for a printer connection,such as via a TCP/IP connection (step 200). A check is made to determinewhether an IPDS print session is active. A typical example of an activeIPDS print session is IPDS print data being processed. If so, the IPDSsession being executed “owns” the printer and prevents other, non-IPDS,print jobs to be printed. However, in accordance with the presentinvention, the control unit 100 opens the non-IPDS path (step 202) andreceives the non-IPDS print data from the host (step 204). If thenon-IPDS print job has been assigned a high priority (step 206), it isreassigned to a lower priority (step 208). Alternatively, non-IPDS printjobs may be initially assigned to lower priorities than IPDS print jobs,thereby avoiding reassigning priorities later in the process.

Using spare processing cycles, the non-IPDS data is rasterized (step210) and the results stored in the rip spool 130 (step 212). Thus,non-IPDS processing may effectively occur concurrently while an IPDSsession is active, including while IPDS data is being processed. Afterthe non-IPDS data has been fully rasterized and stored, the control unit100 may submit an interrupt request, such as an MID (“managed IPDSdialog”) request, to the IPDS host 10 (step 214). Alternatively, thecontrol unit 100 may submit the interrupt request before the non-IPDSdata is fully rasterized. For example, after the non-IPDS data has beenat least partially rasterized, the control unit 100 may examine theportion of the non-IPDS which has been rasterized, the speed with whichthe remainder can be rasterized and the speed with which the printengine 30 can print the pages of the particular print job. The controlunit 100 may then submit an interrupt request at an appropriate timecalculated to ensure that, if the request is granted, the control unit100 will be able to rasterize the remainder of the non-IPDS data atleast as fast as the print engine 30 can print. Such a process improvesefficiency by reducing or eliminating idle time in the print engine 30.

Upon receiving an interrupt request, the IPDS host 10 may interrupt theIPDS session and allow the rasterized non-IPDS to be de-spooled andprinted. Alternatively, the IPDS host may ignore the request (and someIPDS sessions may never accept an MID request). If the control unit 100does not submit an interrupt request, or if such a request is ignored,the control unit 100 waits until the IPDS session is completed and theIPDS host 10 has relinquished control of the printer (step 216). Therasterized non-IPDS print job may then be de-spooled from the rip spool130 to the print engine 30 to be printed (step 218). Preferably, morethan one non-IPDS print job may be processed and stored in the rip spool130 until the IPDS session has been completed.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies regardless of the particular type ofsignal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media suchas a floppy disk, a hard disk drive, a RAM, and CD-ROMs andtransmission-type media such as digital and analog communication links.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated. Moreover, although described above withrespect to methods and systems, the need in the art may also be met witha computer program product containing instructions for processing anon-IPDS print job concurrently with an IPDS print job or a method fordeploying computing infrastructure comprising integrating computerreadable code into a computing system for processing a non-IPDS printjob concurrently with an IPDS print job.

1. A method for processing a non-IPDS print job concurrently with anactive IPDS print session, comprising: receiving a request from a hostto process a non-IPDS print job while an IPDS print session is active ina printer; opening a path from the host; receiving non-IPDS print data;rasterizing the non-IPDS data; storing the rasterized non-IPDS data;waiting until the host of the IPDS session relinquishes the printer; andfollowing relinquishment of the printer, printing the non-IPDS job. 2.The method of claim 1, wherein receiving the non-IPDS print datacomprises receiving the non-IPDS print data through a non-IPDS channelwhile the IPDS print session is active in an IPDS channel.
 3. The methodof claim 1, wherein rasterizing the non-IPDS print data comprisesrasterizing the non-IPDS print data during spare IPDS processing cycles.4. The method of claim 1, further comprising assigning a priority to thenon-IPDS print job which is lower than a priority assigned to the IPDSprint job whereby rasterizing the non-IPDS print data occurs duringspare IPDS processing cycles.
 5. The method of claim 1, furthercomprising: submitting an interrupt request to a host of the IPDS printsession; and waiting until the host of the IPDS session relinquishes theprinter.
 6. The method of claim 5, wherein submitting the interruptrequest comprises submitting the interrupt request before the non-IPDSdata has been completely rasterized.
 7. A control unit for a printer,comprising: an IPDS channel through which an active IPDS print job,submitted by an IPDS host, is processed; a non-IPDS channel throughwhich a non-IPDS print job is processed, comprising: an interfacethrough which a request is received from a host to process the non-IPDSprint job; means for opening a path from the host through which non-IPDSprint data is received; and a non-IPDS rasterizer operable to rasterizethe non-IPDS print data while the IPDS print session is active;temporary storage for storing rasterized non-IPDS print data; and meansfor transmitting the stored rasterized non-IPDS print data to a printengine when the host of the IPDS session relinquishes control of theprinter.
 8. The control unit of claim 7, wherein rasterizing thenon-IPDS print job comprises means for rasterizing the non-IPDS printdata during spare IPDS processing cycles.
 9. The control unit of claim7, further comprising means for reducing a priority assigned to thenon-IPDS print job whereby rasterizing the non-IPDS print data occursduring spare IPDS processing cycles.
 10. The control unit of claim 7,further comprising: means for submitting an interrupt request to theIPDS host after the non-IPDS print data has been at least partiallyrasterized and stored; and means for transmitting the stored rasterizednon-IPDS print data to the print engine when the host of the IPDSsession relinquishes control of the printer.
 11. A computer programproduct of a computer readable medium usable with a programmablecomputer, the computer program product having computer-readable codeembodied therein for processing a non-IPDS print job concurrently withan IPDS print job, the computer-readable code comprising instructionsfor: receiving a request from a host to process a non-IPDS print jobwhile an IPDS print session is active in a printer; opening a path fromthe host; receiving non-IPDS print data; rasterizing the non-IPDS data;storing the rasterized data; waiting until a host of the IPDS sessionrelinquishes the printer; and following relinquishment of the printer,printing the non-IPDS job.
 12. The computer program product of claim 11,wherein the instructions for receiving the non-IPDS print data compriseinstructions for receiving the non-IPDS print data through a non-IPDSchannel while the IPDS print session is active in an IPDS channel. 13.The computer program product of claim 11, wherein the instructions forrasterizing the non-IPDS print data comprise instructions forrasterizing the non-IPDS print data during spare IPDS processing cycles.14. The computer program product of claim 11, wherein thecomputer-readable code further comprises instructions for assigning apriority to the non-IPDS print job which is lower than a priorityassigned to the IPDS print job whereby rasterizing the non-IPDS printdata occurs during spare IPDS processing cycles.
 15. The computerprogram of claim 11, further comprising instructions for: submitting aninterrupt request to the host of the IPDS print session after thenon-IPDS print data has been at least partially rasterized and stored;and waiting until the host of the IPDS session relinquishes the printer.16. A method for deploying computing infrastructure, comprisingintegrating computer readable code into a computing system, the codeoperable for processing a non-IPDS print job concurrently with an IPDSprint job, wherein the code, in combination with the computing system,is capable of performing the following: receiving a request from a hostto process a non-IPDS print job while an IPDS print session is active ina printer; opening a path from the host; receiving non-IPDS print data;rasterizing the non-IPDS data; storing the rasterized data; waitinguntil the IPDS host relinquishes the printer; and followingrelinquishment of the printer, printing the non-IPDS job.
 17. The methodof claim 16, wherein receiving the non-IPDS print data comprisesreceiving the non-IPDS print data through a non-IPDS channel while theIPDS print session is active in an IPDS channel.
 18. The method of claim16, wherein rasterizing the non-IPDS print data comprises rasterizingthe non-IPDS print data during spare IPDS processing cycles.
 19. Themethod of claim 16, wherein the code is further capable of assigning apriority to the non-IPDS print job which is lower than a priorityassigned to the IPDS print job whereby rasterizing the non-IPDS printdata occurs during spare IPDS processing cycles.
 20. The method of claim16, further comprising: submitting an interrupt request to a host of theIPDS print session after the non-IPDS print data has been at leastpartially rasterized and stored; and waiting until the host of the IPDSsession relinquishes the printer.